export interface Option {
  label: string
  value: string
  disabled?: boolean
  text?: string
  bold?: boolean
}
export interface CheckBoxOption {
  label: string
  name: string
  disabled?: boolean
}
export interface DisabledTime {
  start?: string
  during?: string[]
  end?: string
}
export interface FormList {
  prop: string
  label: string
  type: string
  placeholder?: string
  style?: string
  option?: Option[]
  importantStyle?: string
  checkBoxOption?: CheckBoxOption[]
  span?: number
  disabled?: boolean
  multiple?: boolean
  hidden?: boolean
  collapseTags?: boolean
  isSearch?: boolean
  format?: string
  valueFormat?: string
  disabledTime?: DisabledTime
  min?: number
  max?: number
  maxLength?: number
  step?: number
  controls?: boolean
  position?: string
  size?: string
  change?: (v: string, key: string) => void
  blur?: (v: string, key: string) => void
}
export interface RulesItem {
  trigger: string
  message?: string
  required?: boolean
  min?: number
  max?: number
  validator?: any
}
export interface RulesITF {
  [propName: string]: RulesItem[]
}
export interface SelectList {
  [propName: number]: Option[]
}
export interface FormData {
  [propName: string]: any
}

export interface Config {
  formWidth?: string
  horizontallyWidth?: string
  disabledTime?: DisabledTime
  labelPosition?: string // 'left' | 'right' | 'top'
  btnClass?: string
  hiddenBtn?: boolean
  multiLine?: boolean
}
